Users often interact with computing devices via graphical user interfaces. A graphical user interface (GUI) is a computer software program, usually executed within an operating system that enables users to view and manipulate visual elements that represent software objects. Certain software objects may also be associated with hardware objects, such as disc drives, printers, servers, switches, other peripheral devices, other computing devices, and the like. Visual elements of a GUI are viewed on a display surface. A display surface may comprise the electronic display of a computing device, e.g., a desktop computer, laptop computer, personal digital assistant (PDA), cellular telephone, interactive kiosk, etc. A display surface may also comprise multiple physical display devices such as, but not limited to, an array of liquid crystal displays (LCDs). A display surface may also be referred to as a “screen” or “desktop.” A display surface may be subdivided into multiple viewing areas often referred to as “displays.” A display surface on which a GUI presents visual elements for viewing is generically referred to herein as a “display.” Visual elements presented by a GUI on a display are manipulated by actions such as moving and clicking a computer mouse, typing on a keyboard, pressing buttons on a keypad, etc.
In a GUI, visual elements may be placed inside of a “window.” A window is a bounded region of a display that is dedicated to presenting particular software objects and/or providing a particular set of functions, i.e., actions. For example, an e-mail program provides a window in which to view e-mail messages represented by visual elements. The e-mail program usually provides functions, i.e., actions, such as, but not limited to, creating, editing, and organizing e-mail messages. Windows are usually rectangular but may be any two-dimensional shape.
GUIs enable users to perform a wide variety of tasks. Typically, the wide variety and large number of tasks users perform in a GUI require users to coordinate and operate on information from multiple sources. Each source of information is typically contained within a window, the fundamental unit at which users can easily manipulate information. While performing a particular task, a user often benefits from simultaneously viewing relevant information that exists within different windows. Finding and viewing the windows for a particular task is difficult when a GUI contains windows for a plurality of tasks.